
#ifndef GAMESTATE_H
#define GAMESTATE_H
#include <graphics/sprite_renderer.h>
#include <graphics/renderer_3d.h>
#include <graphics/font.h>
#include "GameStateKey.h"
#include <camera.h>
#include <sony_sample_framework.h>
#include <iostream>
class GameState
{
public:
	GameState();
	virtual ~GameState();

	//-- Virtual functions implemented in each state
	virtual GameStates::State Update() = 0;
	virtual void Draw2D(abfw::SpriteRenderer* render, abfw::Matrix44 Projection)  = 0;
	virtual void Draw3D(abfw::Renderer3D* render, abfw::Colour defaultColour) = 0;

	void SetARCardTransform(int ID, const abfw::Matrix44& Transform);
	void ArCardFound(int ID, bool found);
	void ArCardInUse(int ID, bool inUse);
	void SetFPS(float fps);
	void CorrectCamera();

protected:
	abfw::Matrix44* mARCardTransforms[6];
	bool mARCardFound[6];
	bool mARCardInUse[6];
	float mFps;


};
#endif